package com.powersi.hygeia.framework.jdbclogger.oracle10g;

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a
 * copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 */
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.EnumSet;
import java.util.List;
import java.util.Properties;
import java.util.TimeZone;

import oracle.jdbc.OracleConnection;
import oracle.jdbc.OracleOCIFailover;
import oracle.jdbc.OracleSavepoint;
import oracle.jdbc.aq.AQDequeueOptions;
import oracle.jdbc.aq.AQEnqueueOptions;
import oracle.jdbc.aq.AQMessage;
import oracle.jdbc.aq.AQNotificationRegistration;
import oracle.jdbc.dcn.DatabaseChangeRegistration;
import oracle.jdbc.internal.OraclePreparedStatement;
import oracle.jdbc.internal.OracleStatement;
import oracle.sql.ARRAY;
import oracle.sql.BINARY_DOUBLE;
import oracle.sql.BINARY_FLOAT;
import oracle.sql.DATE;
import oracle.sql.INTERVALDS;
import oracle.sql.INTERVALYM;
import oracle.sql.NUMBER;
import oracle.sql.TIMESTAMP;
import oracle.sql.TIMESTAMPLTZ;
import oracle.sql.TIMESTAMPTZ;
import oracle.sql.TypeDescriptor;

import com.powersi.hygeia.framework.jdbclogger.ConnectionWrapper;

/**
 * @author Martin Marinschek (latest modification by $Author: catalean $)
 * @version $Revision: 85 $ $Date: 2007-07-07 23:01:17 +0200 (Sat, 07 Jul 2007)
 *          $
 */
public class OracleConnectionWrapper extends ConnectionWrapper implements
		oracle.jdbc.OracleConnection {
	private OracleConnection _oracleConnection;

	// private static Log log =
	// LogFactory.getLog(JdbcLoggerOracleConnectionWrapper.class);

	public OracleConnectionWrapper(OracleConnection connection, List formatters) {
		super(connection, formatters);

		_oracleConnection = connection;
	}

	public OracleConnectionWrapper(OracleConnection connection) {
		super(connection);

		// _formatters.add(new OracleDateParameterFormatterImpl());

		_oracleConnection = connection;
	}

	@SuppressWarnings("deprecation")
	public void archive(int i, int i1, String s) throws SQLException {
		_oracleConnection.archive(i, i1, s);
	}

	public void openProxySession(int i, Properties properties)
			throws SQLException {
		_oracleConnection.openProxySession(i, properties);
	}

	public boolean getAutoClose() throws SQLException {
		return _oracleConnection.getAutoClose();
	}

	public int getDefaultExecuteBatch() {
		return _oracleConnection.getDefaultExecuteBatch();
	}

	public int getDefaultRowPrefetch() {
		return _oracleConnection.getDefaultRowPrefetch();
	}

	public Object getDescriptor(String s) {
		return _oracleConnection.getDescriptor(s);
	}

	public String[] getEndToEndMetrics() throws SQLException {
		return _oracleConnection.getEndToEndMetrics();
	}

	public short getEndToEndECIDSequenceNumber() throws SQLException {
		return _oracleConnection.getEndToEndECIDSequenceNumber();
	}

	public boolean getIncludeSynonyms() {
		return _oracleConnection.getIncludeSynonyms();
	}

	public boolean getRestrictGetTables() {
		return _oracleConnection.getRestrictGetTables();
	}

	@SuppressWarnings("deprecation")
	public Object getJavaObject(String s) throws SQLException {
		return _oracleConnection.getJavaObject(s);
	}

	public boolean getRemarksReporting() {
		return _oracleConnection.getRemarksReporting();
	}

	@SuppressWarnings("deprecation")
	public String getSQLType(Object o) throws SQLException {
		return _oracleConnection.getSQLType(o);
	}

	@SuppressWarnings("deprecation")
	public int getStmtCacheSize() {
		return _oracleConnection.getStmtCacheSize();
	}

	public short getStructAttrCsId() throws SQLException {
		return _oracleConnection.getStructAttrCsId();
	}

	public String getUserName() throws SQLException {
		return _oracleConnection.getUserName();
	}

	@SuppressWarnings("deprecation")
	public boolean getUsingXAFlag() {
		return _oracleConnection.getUsingXAFlag();
	}

	@SuppressWarnings("deprecation")
	public boolean getXAErrorFlag() {
		return _oracleConnection.getXAErrorFlag();
	}

	@SuppressWarnings("deprecation")
	public int pingDatabase(int i) throws SQLException {
		return _oracleConnection.pingDatabase(i);
	}

	public void putDescriptor(String s, Object o) throws SQLException {
		_oracleConnection.putDescriptor(s, o);
	}

	@SuppressWarnings("deprecation")
	public void registerSQLType(String s, Class aClass) throws SQLException {
		_oracleConnection.registerSQLType(s, aClass);
	}

	@SuppressWarnings("deprecation")
	public void registerSQLType(String s, String s1) throws SQLException {
		_oracleConnection.registerSQLType(s, s1);
	}

	public void setAutoClose(boolean b) throws SQLException {
		_oracleConnection.setAutoClose(b);
	}

	public void setDefaultExecuteBatch(int i) throws SQLException {
		_oracleConnection.setDefaultExecuteBatch(i);
	}

	public void setDefaultRowPrefetch(int i) throws SQLException {
		_oracleConnection.setDefaultRowPrefetch(i);
	}

	public void setEndToEndMetrics(String[] strings, short i)
			throws SQLException {
		_oracleConnection.setEndToEndMetrics(strings, i);
	}

	public void setIncludeSynonyms(boolean b) {
		_oracleConnection.setIncludeSynonyms(b);
	}

	public void setRemarksReporting(boolean b) {
		_oracleConnection.setRemarksReporting(b);
	}

	public void setRestrictGetTables(boolean b) {
		_oracleConnection.setRestrictGetTables(b);
	}

	@SuppressWarnings("deprecation")
	public void setStmtCacheSize(int i) throws SQLException {
		_oracleConnection.setStmtCacheSize(i);
	}

	@SuppressWarnings("deprecation")
	public void setStmtCacheSize(int i, boolean b) throws SQLException {
		_oracleConnection.setStmtCacheSize(i, b);
	}

	public void setStatementCacheSize(int i) throws SQLException {
		_oracleConnection.setStatementCacheSize(i);
	}

	public int getStatementCacheSize() throws SQLException {
		return _oracleConnection.getStatementCacheSize();
	}

	public void setImplicitCachingEnabled(boolean b) throws SQLException {
		_oracleConnection.setImplicitCachingEnabled(b);
	}

	public boolean getImplicitCachingEnabled() throws SQLException {
		return _oracleConnection.getImplicitCachingEnabled();
	}

	public void setExplicitCachingEnabled(boolean b) throws SQLException {
		_oracleConnection.setExplicitCachingEnabled(b);
	}

	public boolean getExplicitCachingEnabled() throws SQLException {
		return _oracleConnection.getExplicitCachingEnabled();
	}

	public void purgeImplicitCache() throws SQLException {
		_oracleConnection.purgeImplicitCache();
	}

	public void purgeExplicitCache() throws SQLException {
		_oracleConnection.purgeExplicitCache();
	}

	public PreparedStatement getStatementWithKey(String s) throws SQLException {
		// if (log.isDebugEnabled())
		// log.debug("Prepared Statement : " + s);

		return new OraclePreparedStatementWrapper(
				(OraclePreparedStatement) _oracleConnection
						.getStatementWithKey(s),
				s, _formatters);
	}

	public CallableStatement getCallWithKey(String s) throws SQLException {
		return _oracleConnection.getCallWithKey(s);
	}

	@SuppressWarnings("deprecation")
	public void setUsingXAFlag(boolean b) {
		_oracleConnection.setUsingXAFlag(b);
	}

	@SuppressWarnings("deprecation")
	public void setXAErrorFlag(boolean b) {
		_oracleConnection.setXAErrorFlag(b);
	}

	// public void shutdown(int i) throws SQLException {
	// _oracleConnection.shutdown(i);
	// }

	@SuppressWarnings("deprecation")
	public void startup(String s, int i) throws SQLException {
		_oracleConnection.startup(s, i);
	}

	@SuppressWarnings("deprecation")
	public PreparedStatement prepareStatementWithKey(String s)
			throws SQLException {
		// if (log.isDebugEnabled())
		// log.debug("Prepared Statement : " + s);

		return new OraclePreparedStatementWrapper(
				(OraclePreparedStatement) _oracleConnection
						.prepareStatementWithKey(s),
				s, _formatters);
	}

	@SuppressWarnings("deprecation")
	public CallableStatement prepareCallWithKey(String s) throws SQLException {
		return _oracleConnection.prepareCallWithKey(s);
	}

	public void setCreateStatementAsRefCursor(boolean b) {
		_oracleConnection.setCreateStatementAsRefCursor(b);
	}

	public boolean getCreateStatementAsRefCursor() {
		return _oracleConnection.getCreateStatementAsRefCursor();
	}

	public void setSessionTimeZone(String s) throws SQLException {
		_oracleConnection.setSessionTimeZone(s);
	}

	public String getSessionTimeZone() {
		return _oracleConnection.getSessionTimeZone();
	}

	public Properties getProperties() {
		return _oracleConnection.getProperties();
	}

	public Connection _getPC() {
		return _oracleConnection._getPC();
	}

	public boolean isLogicalConnection() {
		return _oracleConnection.isLogicalConnection();
	}

	public void registerTAFCallback(OracleOCIFailover oracleOCIFailover,
			Object o) throws SQLException {
		_oracleConnection.registerTAFCallback(oracleOCIFailover, o);
	}

	public OracleConnection unwrap() {
		return _oracleConnection.unwrap();
	}

	public void setWrapper(OracleConnection oracleConnection) {
		_oracleConnection.setWrapper(oracleConnection);
	}

	@SuppressWarnings("deprecation")
	public oracle.jdbc.internal.OracleConnection physicalConnectionWithin() {
		return _oracleConnection.physicalConnectionWithin();
	}

	public OracleSavepoint oracleSetSavepoint() throws SQLException {
		return _oracleConnection.oracleSetSavepoint();
	}

	public OracleSavepoint oracleSetSavepoint(String s) throws SQLException {
		return _oracleConnection.oracleSetSavepoint(s);
	}

	public void oracleRollback(OracleSavepoint oracleSavepoint)
			throws SQLException {
		_oracleConnection.oracleRollback(oracleSavepoint);
	}

	public void oracleReleaseSavepoint(OracleSavepoint oracleSavepoint)
			throws SQLException {
		_oracleConnection.oracleReleaseSavepoint(oracleSavepoint);
	}

	public void close(Properties properties) throws SQLException {
		_oracleConnection.close(properties);
	}

	public void close(int i) throws SQLException {
		_oracleConnection.close(i);
	}

	public boolean isProxySession() {
		return _oracleConnection.isProxySession();
	}

	public void applyConnectionAttributes(Properties properties)
			throws SQLException {
		_oracleConnection.applyConnectionAttributes(properties);
	}

	public Properties getConnectionAttributes() throws SQLException {
		return _oracleConnection.getConnectionAttributes();
	}

	public Properties getUnMatchedConnectionAttributes() throws SQLException {
		return _oracleConnection.getUnMatchedConnectionAttributes();
	}

	@SuppressWarnings("deprecation")
	public void registerConnectionCacheCallback(
			oracle.jdbc.pool.OracleConnectionCacheCallback oracleConnectionCacheCallback,
			Object o, int i) throws SQLException {
		_oracleConnection.registerConnectionCacheCallback(
				oracleConnectionCacheCallback, o, i);
	}

	public void setConnectionReleasePriority(int i) throws SQLException {
		_oracleConnection.setConnectionReleasePriority(i);
	}

	public int getConnectionReleasePriority() throws SQLException {
		return _oracleConnection.getConnectionReleasePriority();
	}

	public void setPlsqlWarnings(String s) throws SQLException {
		_oracleConnection.setPlsqlWarnings(s);
	}

	public Statement createStatement() throws SQLException {
		return new OracleStatementWrapper(
				(OracleStatement) _oracleConnection.createStatement());
	}

	public Statement createStatement(int resultSetType, int resultSetConcurrency)
			throws SQLException {
		return new OracleStatementWrapper(
				(OracleStatement) _oracleConnection.createStatement(
						resultSetType, resultSetConcurrency));
	}

	public Statement createStatement(int resultSetType,
			int resultSetConcurrency, int resultSetHoldability)
			throws SQLException {
		return new OracleStatementWrapper(
				(OracleStatement) _oracleConnection.createStatement(
						resultSetType, resultSetConcurrency,
						resultSetHoldability));
	}

	public PreparedStatement prepareStatement(String sql) throws SQLException {
		return new OraclePreparedStatementWrapper(
				(OraclePreparedStatement) _oracleConnection
						.prepareStatement(sql),
				sql, _formatters);
	}

	public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
			throws SQLException {
		return new OraclePreparedStatementWrapper(
				(OraclePreparedStatement) _oracleConnection.prepareStatement(
						sql, autoGeneratedKeys), sql, _formatters);
	}

	public PreparedStatement prepareStatement(String sql, int resultSetType,
			int resultSetConcurrency) throws SQLException {
		return new OraclePreparedStatementWrapper(
				(OraclePreparedStatement) _oracleConnection.prepareStatement(
						sql, resultSetType, resultSetConcurrency), sql,
				_formatters);
	}

	public PreparedStatement prepareStatement(String sql, int resultSetType,
			int resultSetConcurrency, int resultSetHoldability)
			throws SQLException {
		return new OraclePreparedStatementWrapper(
				(OraclePreparedStatement) _oracleConnection.prepareStatement(
						sql, resultSetType, resultSetConcurrency), sql,
				_formatters);
	}

	public PreparedStatement prepareStatement(String sql, int columnIndexes[])
			throws SQLException {
		return new OraclePreparedStatementWrapper(
				(OraclePreparedStatement) _oracleConnection.prepareStatement(
						sql, columnIndexes), sql, _formatters);
	}

	public PreparedStatement prepareStatement(String sql, String columnNames[])
			throws SQLException {
		return new OraclePreparedStatementWrapper(
				(OraclePreparedStatement) _oracleConnection.prepareStatement(
						sql, columnNames), sql, _formatters);
	}

	public String getCurrentSchema() throws SQLException {
		return _oracleConnection.getCurrentSchema();
	}

	public void abort() throws SQLException {
		_oracleConnection.abort();
	}

	public void cancel() throws SQLException {
		_oracleConnection.cancel();
	}

	public void clearAllApplicationContext(String arg0) throws SQLException {
		_oracleConnection.clearAllApplicationContext(arg0);
	}

	public void commit(EnumSet<CommitOption> arg0) throws SQLException {
		_oracleConnection.commit(arg0);
	}

	public ARRAY createARRAY(String arg0, Object arg1) throws SQLException {
		return _oracleConnection.createARRAY(arg0, arg1);
	}

	public BINARY_DOUBLE createBINARY_DOUBLE(double arg0) throws SQLException {
		return _oracleConnection.createBINARY_DOUBLE(arg0);
	}

	public BINARY_FLOAT createBINARY_FLOAT(float arg0) throws SQLException {
		return _oracleConnection.createBINARY_FLOAT(arg0);
	}

	public DATE createDATE(Date arg0) throws SQLException {
		return _oracleConnection.createDATE(arg0);
	}

	public DATE createDATE(Time arg0) throws SQLException {
		return _oracleConnection.createDATE(arg0);
	}

	public DATE createDATE(Timestamp arg0) throws SQLException {
		return _oracleConnection.createDATE(arg0);
	}

	public DATE createDATE(String arg0) throws SQLException {
		return _oracleConnection.createDATE(arg0);
	}

	public DATE createDATE(Date arg0, Calendar arg1) throws SQLException {
		return _oracleConnection.createDATE(arg0, arg1);
	}

	public DATE createDATE(Time arg0, Calendar arg1) throws SQLException {
		return _oracleConnection.createDATE(arg0, arg1);
	}

	public DATE createDATE(Timestamp arg0, Calendar arg1) throws SQLException {
		return _oracleConnection.createDATE(arg0, arg1);
	}

	public INTERVALDS createINTERVALDS(String arg0) throws SQLException {
		return _oracleConnection.createINTERVALDS(arg0);
	}

	public INTERVALYM createINTERVALYM(String arg0) throws SQLException {
		return _oracleConnection.createINTERVALYM(arg0);
	}

	public NUMBER createNUMBER(boolean arg0) throws SQLException {
		return _oracleConnection.createNUMBER(arg0);
	}

	public NUMBER createNUMBER(byte arg0) throws SQLException {
		return _oracleConnection.createNUMBER(arg0);
	}

	public NUMBER createNUMBER(short arg0) throws SQLException {
		return _oracleConnection.createNUMBER(arg0);
	}

	public NUMBER createNUMBER(int arg0) throws SQLException {
		return _oracleConnection.createNUMBER(arg0);
	}

	public NUMBER createNUMBER(long arg0) throws SQLException {
		return _oracleConnection.createNUMBER(arg0);
	}

	public NUMBER createNUMBER(float arg0) throws SQLException {
		return _oracleConnection.createNUMBER(arg0);
	}

	public NUMBER createNUMBER(double arg0) throws SQLException {
		return _oracleConnection.createNUMBER(arg0);
	}

	public NUMBER createNUMBER(BigDecimal arg0) throws SQLException {
		return _oracleConnection.createNUMBER(arg0);
	}

	public NUMBER createNUMBER(BigInteger arg0) throws SQLException {
		return _oracleConnection.createNUMBER(arg0);
	}

	public NUMBER createNUMBER(String arg0, int arg1) throws SQLException {
		return _oracleConnection.createNUMBER(arg0, arg1);
	}

	public TIMESTAMP createTIMESTAMP(Date arg0) throws SQLException {
		return _oracleConnection.createTIMESTAMP(arg0);
	}

	public TIMESTAMP createTIMESTAMP(DATE arg0) throws SQLException {
		return _oracleConnection.createTIMESTAMP(arg0);
	}

	public TIMESTAMP createTIMESTAMP(Time arg0) throws SQLException {
		return _oracleConnection.createTIMESTAMP(arg0);
	}

	public TIMESTAMP createTIMESTAMP(Timestamp arg0) throws SQLException {
		return _oracleConnection.createTIMESTAMP(arg0);
	}

	public TIMESTAMP createTIMESTAMP(String arg0) throws SQLException {
		return _oracleConnection.createTIMESTAMP(arg0);
	}

	public TIMESTAMPLTZ createTIMESTAMPLTZ(Date arg0, Calendar arg1)
			throws SQLException {
		return _oracleConnection.createTIMESTAMPLTZ(arg0, arg1);
	}

	public TIMESTAMPLTZ createTIMESTAMPLTZ(Time arg0, Calendar arg1)
			throws SQLException {
		return _oracleConnection.createTIMESTAMPLTZ(arg0, arg1);
	}

	public TIMESTAMPLTZ createTIMESTAMPLTZ(Timestamp arg0, Calendar arg1)
			throws SQLException {
		return _oracleConnection.createTIMESTAMPLTZ(arg0, arg1);
	}

	public TIMESTAMPLTZ createTIMESTAMPLTZ(String arg0, Calendar arg1)
			throws SQLException {
		return _oracleConnection.createTIMESTAMPLTZ(arg0, arg1);
	}

	public TIMESTAMPLTZ createTIMESTAMPLTZ(DATE arg0, Calendar arg1)
			throws SQLException {
		return _oracleConnection.createTIMESTAMPLTZ(arg0, arg1);
	}

	public TIMESTAMPTZ createTIMESTAMPTZ(Date arg0) throws SQLException {
		return _oracleConnection.createTIMESTAMPTZ(arg0);
	}

	public TIMESTAMPTZ createTIMESTAMPTZ(Time arg0) throws SQLException {
		return _oracleConnection.createTIMESTAMPTZ(arg0);
	}

	public TIMESTAMPTZ createTIMESTAMPTZ(Timestamp arg0) throws SQLException {
		return _oracleConnection.createTIMESTAMPTZ(arg0);
	}

	public TIMESTAMPTZ createTIMESTAMPTZ(String arg0) throws SQLException {
		return _oracleConnection.createTIMESTAMPTZ(arg0);
	}

	public TIMESTAMPTZ createTIMESTAMPTZ(DATE arg0) throws SQLException {
		return _oracleConnection.createTIMESTAMPTZ(arg0);
	}

	public TIMESTAMPTZ createTIMESTAMPTZ(Date arg0, Calendar arg1)
			throws SQLException {
		return _oracleConnection.createTIMESTAMPTZ(arg0, arg1);
	}

	public TIMESTAMPTZ createTIMESTAMPTZ(Time arg0, Calendar arg1)
			throws SQLException {
		return _oracleConnection.createTIMESTAMPTZ(arg0, arg1);
	}

	public TIMESTAMPTZ createTIMESTAMPTZ(Timestamp arg0, Calendar arg1)
			throws SQLException {
		return _oracleConnection.createTIMESTAMPTZ(arg0, arg1);
	}

	public TIMESTAMPTZ createTIMESTAMPTZ(String arg0, Calendar arg1)
			throws SQLException {
		return _oracleConnection.createTIMESTAMPTZ(arg0, arg1);
	}

	public AQMessage dequeue(String arg0, AQDequeueOptions arg1, byte[] arg2)
			throws SQLException {
		return _oracleConnection.dequeue(arg0, arg1, arg2);
	}

	public AQMessage dequeue(String arg0, AQDequeueOptions arg1, String arg2)
			throws SQLException {
		return _oracleConnection.dequeue(arg0, arg1, arg2);
	}

	public void enqueue(String arg0, AQEnqueueOptions arg1, AQMessage arg2)
			throws SQLException {
		_oracleConnection.enqueue(arg0, arg1, arg2);
	}

	public TypeDescriptor[] getAllTypeDescriptorsInCurrentSchema()
			throws SQLException {
		return _oracleConnection.getAllTypeDescriptorsInCurrentSchema();
	}

	public String getAuthenticationAdaptorName() throws SQLException {
		return _oracleConnection.getAuthenticationAdaptorName();
	}

	public String getDataIntegrityAlgorithmName() throws SQLException {
		return _oracleConnection.getDataIntegrityAlgorithmName();
	}

	public DatabaseChangeRegistration getDatabaseChangeRegistration(int arg0)
			throws SQLException {
		return _oracleConnection.getDatabaseChangeRegistration(arg0);
	}

	public TimeZone getDefaultTimeZone() throws SQLException {
		return _oracleConnection.getDefaultTimeZone();
	}

	public String getEncryptionAlgorithmName() throws SQLException {
		return _oracleConnection.getEncryptionAlgorithmName();
	}

	public String getSessionTimeZoneOffset() throws SQLException {
		return _oracleConnection.getSessionTimeZoneOffset();
	}

	public TypeDescriptor[] getTypeDescriptorsFromList(String[][] arg0)
			throws SQLException {
		return _oracleConnection.getTypeDescriptorsFromList(arg0);
	}

	public TypeDescriptor[] getTypeDescriptorsFromListInCurrentSchema(
			String[] arg0) throws SQLException {
		return _oracleConnection
				.getTypeDescriptorsFromListInCurrentSchema(arg0);
	}

	public boolean isUsable() {
		return _oracleConnection.isUsable();
	}

	public int pingDatabase() throws SQLException {
		return _oracleConnection.pingDatabase();
	}

	public AQNotificationRegistration[] registerAQNotification(String[] arg0,
			Properties[] arg1, Properties arg2) throws SQLException {
		return _oracleConnection.registerAQNotification(arg0, arg1, arg2);
	}

	public DatabaseChangeRegistration registerDatabaseChangeNotification(
			Properties arg0) throws SQLException {
		return _oracleConnection.registerDatabaseChangeNotification(arg0);
	}

	public void setApplicationContext(String arg0, String arg1, String arg2)
			throws SQLException {
		_oracleConnection.setApplicationContext(arg0, arg1, arg2);
	}

	public void setDefaultTimeZone(TimeZone arg0) throws SQLException {
		_oracleConnection.setDefaultTimeZone(arg0);
	}

	public void shutdown(DatabaseShutdownMode arg0) throws SQLException {
		_oracleConnection.shutdown(arg0);
	}

	public void startup(DatabaseStartupMode arg0) throws SQLException {
		_oracleConnection.startup(arg0);
	}

	public void unregisterAQNotification(AQNotificationRegistration arg0)
			throws SQLException {
		_oracleConnection.unregisterAQNotification(arg0);
	}

	public void unregisterDatabaseChangeNotification(
			DatabaseChangeRegistration arg0) throws SQLException {
		_oracleConnection.unregisterDatabaseChangeNotification(arg0);
	}

	public void unregisterDatabaseChangeNotification(int arg0)
			throws SQLException {
		_oracleConnection.unregisterDatabaseChangeNotification(arg0);
	}

	public void unregisterDatabaseChangeNotification(int arg0, String arg1,
			int arg2) throws SQLException {
		_oracleConnection
				.unregisterDatabaseChangeNotification(arg0, arg1, arg2);
	}
}
